home *** CD-ROM | disk | FTP | other *** search
/ Windows 95 Super Collection / Windows 95 Super Collection.iso / win95 / programm / mdf150 / mdf_eng.txt < prev    next >
Encoding:
Text File  |  1995-11-12  |  15.3 KB  |  412 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.                                   MDIFF  -  MPATCH
  12.                                     Release  1.50
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.       Simple but complete program to produce and apply patches to your programs
  27.                and data files for Dos, OS/2, Windows95 and WindowsNT.
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.                                    English manual
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.                   (C) 1995/96 Maurizio Giunti - All rights reserved
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.      1.INDEX
  59.  
  60.  
  61.      1.INDEX                                                                  2
  62.  
  63.  
  64.      2.DISCLAIMER OF WARRANTY                                                 3
  65.  
  66.  
  67.      3.DISTRIBUTION AND USE                                                   3
  68.  
  69.  
  70.      4.WHY?                                                                   3
  71.  
  72.  
  73.      5.WHAT MDIFF-MPATCH DO?                                                  3
  74.  
  75.  
  76.      6.EXAMPLE                                                                3
  77.  
  78.  
  79.      7.DOS, OS/2, WINDOWS 95 AND WINDOWS NT                                   4
  80.  
  81.  
  82.      8.LIMITS AND KNOWN BUGS                                                  4
  83.  
  84.  
  85.      9.MDIFF - MDIFF2 - MDIFFW                                                4
  86.  
  87.  
  88.      10.MPATCH - MPATCH2 - MPATCHW                                            5
  89.  
  90.  
  91.      11.MDF2EXE - MDF2EXE2 - MDF2EXEW                                         6
  92.  
  93.  
  94.      12.SUGGESTIONS                                                           6
  95.  
  96.  
  97.      13.LIBRARIES TO APPLY PATCHES                                            6
  98.  
  99.  
  100.      14.REGISTERING MDIFF                                                     6
  101.  
  102.  
  103.      15.HOW TO CONTACT THE AUTHOR                                             7
  104.  
  105.  
  106.      16.ACKNOWLEDGEMENTS                                                      7
  107.  
  108.  
  109.  
  110.  
  111.  
  112.                                                                               2
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.      2.DISCLAIMER OF WARRANTY
  120.      THIS  SOFTWARE AND THE  ACCOMPANYING FILES  ARE SOLD "AS  IS" AND  WITHOUT
  121.      WARRANTIES  AS TO PERFORMANCE OF  MERCHANTABILITY OR ANY OTHER  WARRANTIES
  122.      WHETHER EXPRESSED OR IMPLIED.
  123.      The  only warranty that comes  with this software is  that it will  occupy
  124.      disk  space. I absolutely can NOT warrant that it will perfectly work,  or
  125.      that it will be your problems' solution.
  126.      Nevertheless,  it is not a virus and does not contain (unless infected  or
  127.      modified  after the   compilation)  Trojan-horses, backdoors  and  similar
  128.      tricky  garbage. In  any case,  the author  is not  responsible   for  any
  129.      damage, moral or material, direct or indirect, derived from its use.
  130.  
  131.      3.DISTRIBUTION AND USE
  132.      This software belongs to Shareware programs: anyone can  freely distribute
  133.      and use  it for a trial period of 15 days.  After this period,  users that
  134.      continue  to use it must register their  copy by sending the  registration
  135.      fee to the  author, Maurizio Giunti.
  136.      The  registered users  will receive  a "registration  key" which  contains
  137.      their name (or their firm/organisation name for site-licenses).
  138.      This  software can be freely distributed at  no cost, except for  eventual
  139.      copy and/or shipping expenses.
  140.      It  is imperative anyway that the  ORIGINAL PACKET is distributed  without
  141.      any modification WHATSOEVER.
  142.      There  is an exception: you can distribute MPATCH.EXE, MPATCH2.EXE  and/or
  143.      MPATCHW.EXE  with one or more *.MDF files produced with a REGISTERED  copy
  144.      of  MDIFF. Moreover  you can  distribute any executable  file produced  by
  145.      MDF2EXE.EXE,  MDF2EXE2.EXE  and  MDF2EXEW.EXE  which  contains   ONLY  MDF
  146.      patches built by a registered copy of MDIFF.
  147.      About *.MDF patches the author of this program does not claim rights.
  148.  
  149.      4.WHY?
  150.      A  few months ago I was updating  a program of mine: since the  compressed
  151.      packet  was about 200 Kbytes, I thought it was better to use a  patch, but
  152.      I   could  not  find  a  program  of  my  satisfaction  among  the   patch
  153.      makers/appliers.  In addition I could not trace  a program that could  run
  154.      under DOS and OS/2.
  155.      I decided to make my own patch software and.....here it is ! 8-)
  156.  
  157.      5.WHAT MDIFF-MPATCH DO?
  158.      MDIFF  creates a binary difference between two files. With MPATCH and  the
  159.      older  file you can create a new  file using the difference file. What  is
  160.      the  advantage? Usually the difference file is smaller and therefore  more
  161.      suitable for distribution, especially by modem.
  162.  
  163.      6.EXAMPLE
  164.      As  an example I put  in two directories named  OLD and NEW,  respectively
  165.      MDIFF.EXE  release 1.45a (a work in progress alpha release) and  MDIFF.EXE
  166.      release 1.45:
  167.  
  168.      Directory of  OLD\*.EXE
  169.      MDIFF.EXE       46602  16/08/95   21.01
  170.  
  171.      Directory of  NEW\*.EXE
  172.      MDIFF.EXE       46602   21/08/95  00.45
  173.                                                                               3
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.      C:\>mdiff OLD\MDIFF.EXE NEW\MDIFF.EXE
  181.      MDIFF  V1.50 - MDF file generator (Dos)
  182.      (C) Copyright 1995/96 Maurizio Giunti
  183.  
  184.      Registered to: MAURIZIO GIUNTI
  185.  
  186.      OLD\MDIFF.EXE,NEW\MDIFF.EXE => MDIFF.MDF
  187.      Working...(100%)   MDF size: 1215 bytes   Rate: 2%
  188.      <Done!>
  189.  
  190.      Directory of  *.MDF
  191.      MDIFF.MDF        1215   7/10/95  13.43
  192.  
  193.      Now,  we can apply the  patch named MDIFF.MDF to  the old file to  rebuild
  194.      the new one:
  195.  
  196.      C:\>mpatch MDIFF.MDF old\MDIFF.EXE
  197.      MPATCH  V1.50 - MDF file applier (Dos)
  198.      (C) Copyright 1995/96 Maurizio Giunti
  199.  
  200.      MDF file produced by: MAURIZIO GIUNTI
  201.  
  202.      Working: 0% |###########| 100%
  203.      <Done!>
  204.  
  205.      I obtain the following file:
  206.  
  207.      Directory of  *.EXE
  208.      MDIFF.EXE       46602  21/08/95   0.41
  209.  
  210.      which is BINARY EQUAL to the new file.
  211.  
  212.      7.DOS, OS/2, WINDOWS 95 AND WINDOWS NT
  213.      I usually build MDIFF and MPATCH for Dos, OS/2 and Windows32  by compiling
  214.      the  same  source,  so  there is  NO  difference  between  them.  Moreover
  215.      difference files produced with MDIFF for Dos can be used with   MPATCH for
  216.      OS/2 or Windows32 and viceversa.
  217.  
  218.      8.LIMITS AND KNOWN BUGS
  219.      MDIFF  can't work on  files greater than  16 Mbytes and  it can't  process
  220.      files smaller than 20 times the current chunk length.
  221.      Since  its source is  the same as  Dos' MDIFF, OS/2's  MDIFF can't  manage
  222.      Extended Attributes: it will ignore them.
  223.      Moreover  if you build a patch by MDIFF for Dos or OS/2, when  applying it
  224.      by  MPATCH for Windows32 and viceversa if  you build a patch by MDIFF  for
  225.      Windows32 and apply it by MPATCH for Dos or OS/2, you will obtain  a wrong
  226.      date  and  time  on the  new  file.  This bug  depends  from  a  different
  227.      implementation   of  the  utime()  function   in  Borland  and   Microsoft
  228.      compilers.
  229.  
  230.      9.MDIFF - MDIFF2 - MDIFFW
  231.      MDIFF  compares 2  files  and stores  the differences  between them  in  a
  232.      difference file. This is the command line  syntax:
  233.  
  234.                                                                               4
  235.  
  236.  
  237.  
  238.  
  239.  
  240.         MDIFF [-C<c>] [-R<r>] [-F<f>] [-S] [-Z] [-P<pwd>] <OldFile> <NewFile>
  241.                                      [<MDFfile>]
  242.  
  243.      <OldFile> is the name of the older file, <NewFile> is the name of  the new
  244.      file.  If you wish you can specify the   name of the difference file  that
  245.      MDIFF  will produce, otherwise MDIFF will create  a file with the name  of
  246.      the  new file but with the extension ".MDF".
  247.      To  search differences between files, MDIFF uses a base string of  defined
  248.      length named Chunk. The Chunk length is  by default 16 bytes, but  you can
  249.      change it, in the range 4-256, with the -C switch followed by  the desired
  250.      length.
  251.      When MDIFF loses the synchronism between the two files being  compared, it
  252.      scans  the older  file  searching the   current  chunk. This  scansion  is
  253.      executed,  by default, in a range of 8  blocks of 512 bytes each. You  can
  254.      change  the number of the blocks scanned,  in the range 1-16, with the  -R
  255.      switch followed by the desired number of  blocks.
  256.      If  this search  fails, MDIFF  tries to  force synchronisation  through  a
  257.      large range search. This range is defined as 1/16 of the old  file length,
  258.      but you can change it by the -F switch on the command line.
  259.      If  you specify -S switch, MDIFF will  provide some information about  the
  260.      composition of the difference file.
  261.      Moreover  you can  add to  the difference  file produced  a short  comment
  262.      (max. 2 Kbytes) to display when the patch is applied, with the  -Z switch.
  263.      MDIFF  gets the comment from standard input,  so you can type it  directly
  264.      or redirect it from a file with the "<" command.
  265.      You can also protect the patch by a password using the -P  switch followed
  266.      by the password. Please notice that the password field is case sensitive.
  267.  
  268.      10.MPATCH - MPATCH2 - MPATCHW
  269.      With  the old  file and  the .MDF file  you can  rebuild the  new file  by
  270.      running MPATCH. This is the command line  syntax:
  271.  
  272.                  MPATCH [-P<pwd>] <MDFfile> [<OldFile> [<NewFile>]]
  273.  
  274.      MPATCH  needs  only  the name  of  the  MDF file  (<MDFfile>)  because  it
  275.      contains  the names of the other 2  files, but  it's possible to  override
  276.      these  names specifying the desired names on the command line. MPATCH  has
  277.      only the -P switch by which you can specify a password.
  278.      If  there  are  errors  during  the  patch  applying,  MPATCH  returns  an
  279.      errorlevel as follows:
  280.      0        "OK!"
  281.      1        "Out of memory !"
  282.      2        "Can't open MDF file !"
  283.      3        "Invalid MDF file !"
  284.      4        "MDF file version mismatch !"
  285.      5        "UNREGISTERED !"
  286.      6        "Bad or incorrect OLD file !"
  287.      7        "Can't open OLD file !"
  288.      8        "Can't create NEW file !"
  289.      9        "General failure: NEW file corrupted !"
  290.      10       "OLD and NEW can't be the same file !"
  291.      11       "NEW file was already patched !"
  292.      12       "Wrong password !"
  293.  
  294.  
  295.                                                                               5
  296.  
  297.  
  298.  
  299.  
  300.  
  301.      11.MDF2EXE - MDF2EXE2 - MDF2EXEW
  302.      MDF2EXE  is a simple  utility which  stores one  or more (up  to 127)  MDF
  303.      patch  files created by MDIFF, to an executable (Dos, OS/2 or  Windows32).
  304.      This kind of executable is called  self installing patch.
  305.      MDF2EXE syntax is:
  306.  
  307.            MDF2EXE <mdf_file 1> [<mdf_file 2>....<mdf_file n>] <exe_file>
  308.  
  309.      Where <mdf_file x> can contain wildcards.
  310.      The  <exe_file> (which MUST have .EXE extension) will be executed  without
  311.      any  parameters on  the command  line. It  will automatically  search  the
  312.      files to update.
  313.      Eventually you  can use a -P switch to specify a password or the -V  or -L
  314.      switches to list the patches stored in the file.
  315.      Warning:  don't compress a  self installing  patch by PKLite  or LZexe  or
  316.      other similar compression/encryption tools.
  317.  
  318.      12.SUGGESTIONS
  319.      The  best method to build  a difference file, is  to search the chunks  of
  320.      the  new file in the entire older  file, but this  is  a very slow way  to
  321.      do! MDIFF's algorithm tries to give a small diff file in a faster  way; so
  322.      you  are sometimes required to tune the work  parameters with the  command
  323.      line switches.
  324.      Let's look at some typical situations:
  325.      1. 
  326.        Very  similar files: use a  large chunk (32, 64  or more) to reduce  the
  327.        size  of the  diff file,  in particular  if the  files contain  text  or
  328.        archives.
  329.      2. 
  330.        Text  files: try to use a  chunk size of 32,  sometimes it is better  to
  331.        turn the forced sync off or reduce its range by the -F switch.
  332.      3. 
  333.        Very  large executable: try to use a  larger resync range (16 or  more),
  334.        with the -R switch.
  335.      Remember:  MDIFF  can't  make  miracles!  If  the  two  files  are  really
  336.      different,  the patch will result very large.  In this situation you  must
  337.      distribute  the entire new file. MDIFF is  useful only when the amount  of
  338.      changes is limited.
  339.  
  340.      13.LIBRARIES TO APPLY PATCHES
  341.      Included  in this  packet you  will find a  complete set  of libraries  to
  342.      build your own programs to apply patches. These libraries CAN'T  apply MDF
  343.      patches built by an UNREGISTERED copy of MDIFF.
  344.      This  does not mean they are not fully functional. It means the  libraries
  345.      can only apply patches produced by a registered copy of MDiff.
  346.  
  347.      14.REGISTERING MDIFF
  348.      By  registering MDIFF you  will obtain a  REGISTRATION KEY which  contains
  349.      your name (or your firm/organisation for site-licenses). When  you produce
  350.      a patch by a registered MDIFF, it will store your name in the  patch. When
  351.      MPATCH will install your patches it will display your name.
  352.      Moreover   any  registered  user  has  permission  to  freely   distribute
  353.      MPATCH.EXE, MPATCH2.EXE and MPATCHW.EXE with any MDF file prepared  by the
  354.      user.  Any self-installing patches produced by the registered user can  be
  355.      freely distributed and used.
  356.      No royalty or extra charge required!
  357.      Included  in MDIFF  packet you  will find a  Windows registration  program
  358.      named REGISTER.EXE. Please run it on Windows environment.
  359.                                                                               6
  360.  
  361.  
  362.  
  363.  
  364.  
  365.      REGISTER.EXE  is a small  Windows application written  by Grzegorz  (Greg)
  366.      Kochaniak, which provides all info needed to purchase MDIFF and  it allows
  367.      you to send them directly to Kagi Shareware service by snail  mail, e-mail
  368.      or fax. If you do not use Windows please contact me.
  369.      For any info about Kagi Shareware please read KAGI.TXT file.
  370.  
  371.      15.HOW TO CONTACT THE AUTHOR
  372.      For  any  problem  or  question  you  can  contact  me  at  the  following
  373.      addresses:
  374.  
  375.      snail mail:
  376.                      Maurizio Giunti
  377.                      Via G.B. Foggini, 24
  378.                      50142 Firenze (FI)
  379.                      ITALY
  380.  
  381.      e-mail:
  382.                      Fidonet:      2:332/102.3
  383.                      Internet:     giunti@kagi.com
  384.                                    giunti@abeline.it
  385.                                    giunti@statsun.ds.unifi.it
  386.  
  387.      16.ACKNOWLEDGEMENTS
  388.      I'd  like to thank all  those who helped me  to develop this software  and
  389.      its  documentation  and all  those  who   helped  me in  beta-testing.  In
  390.      alphabetical order:
  391.  
  392.                              Mauricio Mello de Andreade
  393.  
  394.                                    Andrea Baitelli
  395.  
  396.                                     Silvia Borri
  397.  
  398.                                  Juan Jose Comellas
  399.  
  400.                                     Filippo Dini
  401.  
  402.                                  Fabrizio Fioravanti
  403.  
  404.                                  Cristiano Guidoccio
  405.  
  406.                                 Giovanni Lopes Pegna
  407.  
  408.                                   Marco Maccaferri
  409.  
  410.                                   Marco Menichelli
  411.  
  412.                                    Giuseppe Scarpi
  413.  
  414.                                    Toni Tatafiore
  415.  
  416.                                     Duncan Wilcox
  417.  
  418.  
  419.  
  420.                                                                               7
  421.  
  422.